package file;

import java.io.*;

public class FileCopy {
	public void copyFile(String src, String des) throws Exception {
		FileInputStream in = null;
		FileOutputStream out = null;
		byte[] buf = new byte[4096]; // read buffer로 사용할 byte 배열
		int read_size = 0;
		try {
			in = new FileInputStream(src);
			out = new FileOutputStream(des);
			while((read_size=in.read(buf)) > 0) { // InputStream의 read(byte[])는 읽어들인  byte 배열의 길이를 반환한다. EOF(End Of File)에 도달하면 0을 반환한다. 
				out.write(buf, 0, read_size); //실제로 읽힌 byte의 숫자만큼만 써야 한다.
			}
		} catch(Exception e) {
			throw e;
		} finally {
			try{in.close();}catch(Exception e){}
			try{out.close();}catch(Exception e){}
		}
	}

	public static void main(String[] args) {
		FileCopy c = new FileCopy();
		try {
			c.copyFile("bin.zip", "copy of bin.zip");
		} catch(Exception e) {
			e.printStackTrace();
		}
		
	}
}
